import wx from 'weixin-sdk-js';
import $axios from 'axios';
import i18n from '@/main.js';
export default {
    /**
     * 初始化微信JS-SDK config
     * @param apiList 需要使用的JS接口列表
     * @param url 当前网页的URL，不包含#及其后面部分
     * @returns {Promise<unknown>} 返回一个Promise对象
     */
    initConfig(apiList = [], url) {
        return new Promise((resolve, reject) => {
            $axios.get('/app/api/wechat/js-sdk/config', {
                params: {
                    url: encodeURIComponent(url)
                }
            }).then(res => {
                if (res.data) {
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来，若要查看传入的参数，可以在 pc 端打开，参数信息会通过 log 打出，仅在 pc 端时才会打印。
                        appId: res.data.appId, // 必填，公众号的唯一标识
                        timestamp: res.data.timestamp, // 必填，生成签名的时间戳
                        nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
                        signature: res.data.signature, // 必填，签名，见附录1
                        jsApiList: apiList // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                    });
                    wx.ready(() => {
                        // 判断当前客户端版本是否支持指定 JS 接口
                        wx.checkJsApi({
                            jsApiList: apiList, // 需要检测的JS接口列表，所有JS接口列表见附录2,
                            success(res) {
                                // 以键值对的形式返回，可用的api值true，不可用为false
                                // 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                                if (res.errMsg === 'checkJsApi:ok') {
                                    resolve();
                                } else {
                                    alert(i18n.t('video_tip4'));
                                    reject(res);
                                }
                            }
                        });
                    });
                    wx.error((res) => {
                        reject(res);
                    });
                } else {
                    reject(res);
                }
            }).catch(err => {
                reject(err);
            });
        });
    },

    /**
     * 扫码
     * @returns {Promise<unknown>} 返回一个Promise对象
     */
    scanQRCode() {
        return new Promise((resolve, reject) => {
            wx.scanQRCode({
                needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
                scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码，默认二者都有
                success(res) {
                    const result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
                    resolve(result);
                },
                cancel(res) {
                    resolve(res);
                },
                fail(err) {
                    reject(err);
                }
            });
        });
    },
    // 人脸采集
    faceGather() {
        return new Promise((resolve, reject) => {
            wx.chooseImage({
                count: 1, // 默认9
                sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
                sourceType: ['camera'], // 可以指定来源是相册还是相机，默认二者都有
                success(res) {
                    var localIds = res.localIds; // 返回选定照片的本地 ID 列表，localId可以作为 img 标签的 src 属性显示图片
                    wx.getLocalImgData({
                        localId: res.localIds[0], // 图片的localID
                        success: function(res) {
                            var localData = res.localData; // localData是图片的base64数据，可以用 img 标签显示
                            let data = {
                                pathSrc: localIds,
                                urlBase: localData
                            };
                            resolve(data);
                        }
                    });
                },
                fail(err) {
                    reject(err);
                }
            });
        });
    }
};
